package br.com.Orange.dao;

import br.com.Orange.dao.cliente.RepositorioCliente;
import br.com.Orange.dao.funcionarios.RepositorioFuncionario;
import br.com.Orange.dao.permanencia.RepositorioPermanencia;
import br.com.Orange.dao.produto.RepositorioProduto;
import br.com.Orange.dao.quarto.RepositorioQuarto;
import br.com.Orange.dao.quarto.RepositorioTipoQuarto;
import br.com.Orange.util.ConfiguracaoSistema;

public abstract class FabricaRepositorio {
	protected static final String PROPRIEDADE_CLASSE_FABRICA = "tipoFabrica";
	
	
	public static FabricaRepositorio obterFabrica(){
	
		FabricaRepositorio fabrica = (FabricaRepositorio) ConfiguracaoSistema.getInstancia(PROPRIEDADE_CLASSE_FABRICA);
		
		return fabrica;
	}
	
	public abstract RepositorioCliente criarRepositorioClientes();
	
	public abstract RepositorioFuncionario criarRepositorioFuncionarios();
	
	public abstract RepositorioPermanencia criarRepositorioPermanencia();
	
	public abstract RepositorioProduto criarRepositorioProdutos();
	
	public abstract RepositorioQuarto criarRepositorioQuartos();
	
	public abstract RepositorioTipoQuarto criarRepositorioTipoQuartos();
	
	
	
	
}
